Image processing systems are at the heart of digital image revolution. These systems process the captured digital images to enhance the clarity and details of the images using image processing algorithms. Such algorithms result in images that are substantially more accurate and detailed than previously achieved using older analog methods.
There remains, however, a substantial difference between how an image is perceived by a human and an image captured and reproduced on a display medium. Despite the improvements gained by conventional digital image processing systems, such systems remain deficient in reproducing an image with the same level of detail, color constancy, and lightness of an actual scene as the eye, brain, and nervous system of a human being. This is due in part to the human nervous system having a greater dynamic range compression than is available on current digital systems, wherein dynamic range compression refers to the ability to distinguish varying levels of light.
Many techniques have been proposed to compensate for such lighting deficiency. Among such techniques is Retinex theory which reproduces an image similar to human visual perception. Retinex theory deals with compensation for illumination effects in images. Its primary goal is to decompose a given image S into two images: a reflectance image R, and an illumination image L, such that, at each point or pixel (x,y) in the image domain, Y(x,y)=R(x,y)·L(x,y). The benefits of such decomposition include the possibility of removing illumination effects of back/front lighting, and enhancing shots that include spatially varying illumination such as images that contain indoor and outdoor zones.
It is reported that Retinex techniques are particularly useful for enhancing boundaries between lighter and darker regions of an image. However, such techniques are unsatisfactory for a number of reasons. One critical reason is that the computational complexity for the Retinex techniques is high. As such, it is difficult and expensive to implement the Retinex algorithm in hardware. Therefore, there is a need for a simplified Retinex implementation.